package cn.ware.house.interfaces.service;

import cn.ware.house.interfaces.entity.OutboundRecord;
import java.util.List;

/**
 * 出库记录服务接口，定义了对出库记录业务逻辑操作的抽象方法，
 * 这些方法会调用数据访问层（OutboundRecordMapper）的方法来实现具体功能，
 * 对外提供统一的服务接口，便于控制层调用以及业务逻辑的封装。
 */
public interface OutboundRecordService {
    /**
     * 根据出库记录编号查询出库记录信息。
     *
     * @param outboundId 出库记录编号
     * @return 对应的出库记录实体对象，如果不存在则返回null
     */
    OutboundRecord findOutboundRecordById(Integer outboundId);

    /**
     * 查询所有出库记录信息。
     *
     * @return 包含所有出库记录信息的列表
     */
    List<OutboundRecord> findAllOutboundRecords();

    /**
     * 插入出库记录信息到数据库。
     *
     * @param outboundRecord 要插入的出库记录实体对象
     * @return 插入操作是否成功（一般根据受影响行数判断）
     */
    boolean insertOutboundRecord(OutboundRecord outboundRecord);

    /**
     * 根据出库记录编号更新出库记录信息。
     *
     * @param outboundRecord 包含更新后信息的出库记录实体对象
     * @return 更新操作是否成功（根据受影响行数判断）
     */
    boolean updateOutboundRecordById(OutboundRecord outboundRecord);

    /**
     * 根据出库记录编号删除出库记录信息。
     *
     * @param outboundId 要删除的出库记录编号
     * @return 删除操作是否成功（根据受影响行数判断）
     */
    boolean deleteOutboundRecordById(Integer outboundId);
}